<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" dir="ltr" class="client-nojs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Arithmetic types - cppreference.com</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.21.2">


<link rel="shortcut icon" href="../../../favicon.ico">



<link rel="stylesheet" href="../../../common/ext.css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="../../../common/site_modules.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-css:7:472787eddcf4605d11de8c7ef047234f */</style>

<script src="../../../common/startup_scripts.js"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"cpp/language/types","wgTitle":"cpp/language/types","wgCurRevisionId":70229,"wgArticleId":716,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"cpp/language/types","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-ColiruCompiler":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-js:7:ca03345b1e2c4d90a25d968753a73b92 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<style type="text/css">/*<![CDATA[*/
.source-cpp {line-height: normal;}
.source-cpp li, .source-cpp pre {
	line-height: normal; border: 0px none white;
}
/**
 * GeSHi Dynamically Generated Stylesheet
 * --------------------------------------
 * Dynamically generated stylesheet for cpp
 * CSS class: source-cpp, CSS id: 
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
 * (http://qbnz.com/highlighter/ and http://geshi.org/)
 * --------------------------------------
 */
.cpp.source-cpp .de1, .cpp.source-cpp .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.cpp.source-cpp  {font-family:monospace;}
.cpp.source-cpp .imp {font-weight: bold; color: red;}
.cpp.source-cpp li, .cpp.source-cpp .li1 {font-weight: normal; vertical-align:top;}
.cpp.source-cpp .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}
.cpp.source-cpp .li2 {font-weight: bold; vertical-align:top;}
.cpp.source-cpp .kw1 {color: #0000dd;}
.cpp.source-cpp .kw2 {color: #0000ff;}
.cpp.source-cpp .kw3 {color: #0000dd;}
.cpp.source-cpp .kw4 {color: #0000ff;}
.cpp.source-cpp .co1 {color: #909090;}
.cpp.source-cpp .co2 {color: #339900;}
.cpp.source-cpp .coMULTI {color: #ff0000; font-style: italic;}
.cpp.source-cpp .es0 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es1 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es2 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es3 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es4 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es5 {color: #008000; font-weight: bold;}
.cpp.source-cpp .br0 {color: #008000;}
.cpp.source-cpp .sy0 {color: #008000;}
.cpp.source-cpp .sy1 {color: #000080;}
.cpp.source-cpp .sy2 {color: #000040;}
.cpp.source-cpp .sy3 {color: #000040;}
.cpp.source-cpp .sy4 {color: #008080;}
.cpp.source-cpp .st0 {color: #008000;}
.cpp.source-cpp .nu0 {color: #000080;}
.cpp.source-cpp .nu6 {color: #000080;}
.cpp.source-cpp .nu8 {color: #000080;}
.cpp.source-cpp .nu12 {color: #000080;}
.cpp.source-cpp .nu16 {color:#000080;}
.cpp.source-cpp .nu17 {color:#000080;}
.cpp.source-cpp .nu18 {color:#000080;}
.cpp.source-cpp .nu19 {color:#000080;}
.cpp.source-cpp .ln-xtra, .cpp.source-cpp li.ln-xtra, .cpp.source-cpp div.ln-xtra {background-color: #ffc;}
.cpp.source-cpp span.xtra { display:block; }

/*]]>*/
</style>
<!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]-->
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_language_types skin-cppreference2 action-view cpp-navbar">
        <!-- header -->
        
        <!-- /header -->
        <!-- content -->
        <div id="cpp-content-base">
            <div id="content">
                <a id="top"></a>
                <div id="mw-js-message" style="display:none;"></div>
                                <!-- firstHeading -->
                <h1 id="firstHeading" class="firstHeading">Arithmetic types</h1>
                <!-- /firstHeading -->
                <!-- bodyContent -->
                <div id="bodyContent">
                                        <!-- tagline -->
                    <div id="siteSub">From cppreference.com</div>
                    <!-- /tagline -->
                                        <!-- subtitle -->
                    <div id="contentSub"><span class="subpages">&lt; <a href="../../cpp.html" title="cpp">cpp</a>‎ | <a href="../language.1.html" title="cpp/language">language</a></span></div>
                    <!-- /subtitle -->
                                                            <!-- bodycontent -->
                    <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr">
<div class="t-navbar" style="">
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head">
<a href="../../cpp.html" title="cpp"> C++</a><div class="t-navbar-menu"><div>
<div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em;">
<tr class="t-nv"><td colspan="5"> <a href="../language.1.html" title="cpp/language"> Language</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../header.html" title="cpp/header"> Standard library headers</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../concept.html" title="cpp/concept"> Concepts</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../utility.html" title="cpp/utility"> Utilities library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../string.html" title="cpp/string"> Strings library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../container.html" title="cpp/container"> Containers library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../algorithm.html" title="cpp/algorithm"> Algorithms library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../iterator.html" title="cpp/iterator"> Iterators library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../numeric.html" title="cpp/numeric"> Numerics library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../io.html" title="cpp/io"> Input/output library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../locale.html" title="cpp/locale"> Localizations library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../regex.html" title="cpp/regex"> Regular expressions library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../atomic.html" title="cpp/atomic"> Atomic operations library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../thread.html" title="cpp/thread"> Thread support library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
</table></div>
<div></div>
</div></div>
</div>
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head"><a href="../language.1.html" title="cpp/language"> C++ language</a></div>
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head">
<a href="basic_concepts.html" title="cpp/language/basic concepts"> Basic Concepts</a><div class="t-navbar-menu"><div>
<div style="display:inline-block">
<div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="../keywords.html" title="cpp/keyword"> language keywords</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="translation_phases.html" title="cpp/language/translation phases"> phases of translation</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../comment.html" title="cpp/comment"> comments </a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="main_function.html" title="cpp/language/main function"> the main() function</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="name.html" title="cpp/language/identifiers"> names and identifiers</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="incomplete_type.html" title="cpp/language/type"> types</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <strong class="selflink"> arithmetic types</strong> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="objects.html" title="cpp/language/object"> objects</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="scope.html" title="cpp/language/scope"> scope</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="lifetime.html" title="cpp/language/lifetime"> object lifetime</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="storage_duration.html" title="cpp/language/storage duration"> storage duration and linkage</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="definition.html" title="cpp/language/definition"> definitions and ODR</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="lookup.html" title="cpp/language/lookup"> name lookup</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="memory_model.html" title="cpp/language/memory model"> memory model</a> </td></tr>
</table></div>
</div>
<div></div>
</div></div>
</div>
<div class="t-navbar-sep"> </div>
</div>
<p><small>(See also <a href="incomplete_type.html" title="cpp/language/type">type</a> for type system overview and <a href="../types.html" title="cpp/types"> the list of type-related utilities</a> that are provided by the C++ library)</small>
</p>
<table id="toc" class="toc"><tr><td>
<div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="types.html%23Boolean_type"><span class="tocnumber">1</span> <span class="toctext">Boolean type</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="types.html%23Character_types"><span class="tocnumber">2</span> <span class="toctext">Character types</span></a></li>
<li class="toclevel-1 tocsection-3">
<a href="types.html%23Integer_types"><span class="tocnumber">3</span> <span class="toctext">Integer types</span></a>
<ul>
<li class="toclevel-2 tocsection-4"><a href="types.html%23Modifiers"><span class="tocnumber">3.1</span> <span class="toctext">Modifiers</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="types.html%23Properties"><span class="tocnumber">3.2</span> <span class="toctext">Properties</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="types.html%23Data_models"><span class="tocnumber">3.3</span> <span class="toctext">Data models</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-7"><a href="types.html%23Floating_point_types"><span class="tocnumber">4</span> <span class="toctext">Floating point types</span></a></li>
<li class="toclevel-1 tocsection-8"><a href="types.html%23Range_of_values"><span class="tocnumber">5</span> <span class="toctext">Range of values</span></a></li>
<li class="toclevel-1 tocsection-9"><a href="types.html%23Keywords"><span class="tocnumber">6</span> <span class="toctext">Keywords</span></a></li>
<li class="toclevel-1 tocsection-10"><a href="types.html%23See_also"><span class="tocnumber">7</span> <span class="toctext">See also</span></a></li>
</ul>
</td></tr></table>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Boolean type">edit</a>]</span> <span class="mw-headline" id="Boolean_type">Boolean type</span>
</h3>
<dl><dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span> - type, capable of holding one of the two values: <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> or <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">false</span></span></span>.
</dd></dl>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Character types">edit</a>]</span> <span class="mw-headline" id="Character_types">Character types</span>
</h3>
<dl>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">char</span></span></span> - type for signed character representation.
</dd>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">char</span></span></span> - type for unsigned character representation.
</dd>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char</span></span></span> - type for character representation which can be most efficiently processed on the target system (equivalent to either <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">char</span></span></span> or <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">char</span></span></span>, but still  different type).
</dd>
</dl>
<dl>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">wchar_t</span></span></span> - type for wide character representation
</dd>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char16_t</span></span></span> - type for UTF-16 character representation <span class="t-mark-rev t-since-cxx11">(since C++11)</span>
</dd>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char32_t</span></span></span> - type for UTF-32 character representation <span class="t-mark-rev t-since-cxx11">(since C++11)</span>
</dd>
</dl>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Integer types">edit</a>]</span> <span class="mw-headline" id="Integer_types">Integer types</span>
</h3>
<dl><dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span></span></span> - basic integer type. Can be omitted if any of the modifiers are present. If no length modifiers are present, guaranteed to have width of at least 16 bits. However, on 32/64 bit systems it is almost exclusively guaranteed to have width of at least 32 bits (see below).
</dd></dl>
<h4>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Modifiers">edit</a>]</span> <span class="mw-headline" id="Modifiers">Modifiers</span>
</h4>
<p>Modifies the integer type. Can be mixed in any order. Only one of each group can be present in type name.
</p>
<p><b>Signedness</b>
</p>
<dl>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span></span></span> - target type will have signed representation (this is the default if omitted)
</dd>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span></span></span> - target type will have unsigned representation
</dd>
</dl>
<p><b>Size</b>
</p>
<dl>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">short</span></span></span> - target type will be optimized for space and will have width of at least 16 bits.
</dd>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span></span></span> - target type will have width of at least 32 bits.
</dd>
<dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span> <span class="kw4">long</span></span></span> - target type will have width of at least 64 bits <span class="t-mark-rev t-since-cxx11">(since C++11)</span>
</dd>
</dl>
<h4>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Properties">edit</a>]</span> <span class="mw-headline" id="Properties">Properties</span>
</h4>
<p>The following table summarizes all available integer types and their properties:
</p>
<table class="wikitable" style="text-align:center;">

<tr>
<th rowspan="2"> Type specifier
</th>
<th rowspan="2"> Equivalent type
</th>
<th colspan="5"> Width in bits by data model
</th>
</tr>
<tr>
<th> C++ standard
</th>
<th> LP32
</th>
<th> ILP32
</th>
<th> LLP64
</th>
<th> LP64
</th>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">short</span></span></span></div>
</td>
<td rowspan="4"> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">short</span> <span class="kw4">int</span></span></span>
</td>
<td rowspan="6"> at least<br> <b>16</b>
</td>
<td rowspan="6"> <b>16</b>
</td>
<td rowspan="6"> <b>16</b>
</td>
<td rowspan="6"> <b>16</b>
</td>
<td rowspan="6"> <b>16</b>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">short</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">short</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">short</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">short</span></span></span></div>
</td>
<td rowspan="2"> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">short</span> <span class="kw4">int</span></span></span>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">short</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span></span></span></div>
</td>
<td rowspan="3"> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span></span></span>
</td>
<td rowspan="5"> at least<br> <b>16</b>
</td>
<td rowspan="5"> <b>16</b>
</td>
<td rowspan="5"> <b>32</b>
</td>
<td rowspan="5"> <b>32</b>
</td>
<td rowspan="5"> <b>32</b>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span></span></span></div>
</td>
<td rowspan="2"> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">int</span></span></span>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span></span></span></div>
</td>
<td rowspan="4"> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span> <span class="kw4">int</span></span></span>
</td>
<td rowspan="6"> at least<br> <b>32</b>
</td>
<td rowspan="6"> <b>32</b>
</td>
<td rowspan="6"> <b>32</b>
</td>
<td rowspan="6"> <b>32</b>
</td>
<td rowspan="6"> <b>64</b>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">long</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">long</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">long</span></span></span></div>
</td>
<td rowspan="2"> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">int</span></span></span>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span> <span class="kw4">long</span></span></span></div>
</td>
<td rowspan="4"> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span> <span class="kw4">long</span> <span class="kw4">int</span></span></span> <br> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td>
<td rowspan="6"> at least<br> <b>64</b>
</td>
<td rowspan="6"> <b>64</b>
</td>
<td rowspan="6"> <b>64</b>
</td>
<td rowspan="6"> <b>64</b>
</td>
<td rowspan="6"> <b>64</b>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span> <span class="kw4">long</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">long</span> <span class="kw4">long</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">signed</span> <span class="kw4">long</span> <span class="kw4">long</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span></span></span></div>
</td>
<td rowspan="2"> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> <span class="kw4">int</span></span></span> <br> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td>
</tr>
<tr>
<td> <div style="text-align:left; width:auto; margin-left:auto; margin-right:auto;"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">long</span> <span class="kw4">long</span> <span class="kw4">int</span></span></span></div>
</td>
</tr>
</table>
<p>Besides the minimal bit counts, the C++ Standard guarantees that
</p>
<dl><dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">1</span> <span class="sy1">==</span> sizeof<span class="br0">(</span><span class="kw4">char</span><span class="br0">)</span> <span class="sy1">&lt;=</span> sizeof<span class="br0">(</span><span class="kw4">short</span><span class="br0">)</span> <span class="sy1">&lt;=</span> sizeof<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">&lt;=</span> sizeof<span class="br0">(</span><span class="kw4">long</span><span class="br0">)</span> <span class="sy1">&lt;=</span> sizeof<span class="br0">(</span><span class="kw4">long</span> <span class="kw4">long</span><span class="br0">)</span></span></span>.
</dd></dl>
<p>Note: this allows the extreme case in which <a href="http%3A//en.wikipedia.com/wiki/Byte" class="extiw" title="enwiki:Byte">bytes</a> are sized 64 bits, all types (including <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char</span></span></span>) are 64 bits wide, and <span class="t-c"><span class="mw-geshi cpp source-cpp">sizeof</span></span> returns 1 for every type.
</p>
<p>Note: integer arithmetic is defined differently for the signed and unsigned integer types. See <a href="operator_arithmetic.html" title="cpp/language/operator arithmetic">arithmetic operators</a>, in particular  <a href="operator_arithmetic.html%23Overflows" title="cpp/language/operator arithmetic">integer overflows</a>.
</p>
<h4>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Data models">edit</a>]</span> <span class="mw-headline" id="Data_models">Data models</span>
</h4>
<p>The choices made by each implementation about the sizes of the fundamental types are collectively known as <i>data model</i>. Four data models found wide acceptance:
</p>
<p>32 bit systems:
</p>
<dl><dd>
<ul><li>
<b>LP32</b> or <b>2/4/4</b> (int is 16-bit, long and pointer are 32-bit)
</li></ul>
<dl><dd>
<ul><li> Win16 API
</li></ul>
</dd></dl>
<ul><li>
<b>ILP32</b> or <b>4/4/4</b> (int, long, and pointer are 32-bit);
</li></ul>
<dl><dd>
<ul>
<li> Win32 API
</li>
<li> Unix and Unix-like systems (Linux, Mac OS X)
</li>
</ul>
</dd></dl>
</dd></dl>
<p>64 bit systems:
</p>
<dl><dd>
<ul><li> <b>LLP64</b> or <b>4/4/8</b> (int and long are 32-bit, pointer is 64-bit)
</li></ul>
<dl><dd>
<ul><li> Win64 API
</li></ul>
</dd></dl>
<ul><li> <b>LP64</b> or <b>4/8/8</b> (int is 32-bit, long and pointer are 64-bit)
</li></ul>
<dl><dd>
<ul><li> Unix and Unix-like systems (Linux, Mac OS X)
</li></ul>
</dd></dl>
</dd></dl>
<p>Other models are very rare. For example, <b>ILP64</b> (<b>8/8/8</b>: int, long, and pointer are 64-bit) only appeared in some early 64-bit Unix systems (e.g. Unicos on Cray).
</p>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Floating point types">edit</a>]</span> <span class="mw-headline" id="Floating_point_types">Floating point types</span>
</h3>
<dl><dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">float</span></span></span> - single precision floating point type. Usually IEEE-754 32 bit floating point type
</dd></dl>
<dl><dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">double</span></span></span> - double precision floating point type. Usually IEEE-754 64 bit floating point type
</dd></dl>
<dl><dd>
<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">long</span> <span class="kw4">double</span></span></span> - extended precision floating point type. Does not necessarily map to types mandated by IEEE-754. Usually 80-bit x87 floating point type on x86 and x86-64 architectures.
</dd></dl>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Range of values">edit</a>]</span> <span class="mw-headline" id="Range_of_values">Range of values</span>
</h3>
<p>The following table provides a reference for the limits of common numeric representations. As the C++ Standard allows any signed integer representation, the table gives both the minimum guaranteed requirements (which correspond to the limits of <a href="http%3A//en.wikipedia.com/wiki/One%27s_complement" class="extiw" title="enwiki:One's complement">one's complement</a> or <a href="http%3A//en.wikipedia.com/wiki/Signed_number_representations%23Sign-and-magnitude_method" class="extiw" title="enwiki:Signed number representations">sign-and-magnitude</a>) and the limits of the most commonly used implementation, <a href="http%3A//en.wikipedia.com/wiki/Two%27s_complement" class="extiw" title="enwiki:Two's complement">two's complement</a>. All popular data models (including all of ILP32, LP32, LP64, LLP64) use two's complement representation, though.
</p>
<table class="wikitable" style="text-align:center;">

<tr>
<th rowspan="2"> Type
</th>
<th rowspan="2"> Size in bits
</th>
<th rowspan="2"> Format
</th>
<th colspan="2"> Value range
</th>
</tr>
<tr>
<th> Approximate
</th>
<th> Exact
</th>
</tr>
<tr>
<th rowspan="3"> character
</th>
<td rowspan="3"> 8
</td>
<td> signed <span style="font-size:0.7em; line-height:130%">(one's complement)</span>
</td>
<td colspan="2"> <b>-127</b> to <b>127</b><span class="t-mark-rev t-until-cxx14">(until C++14)</span>
</td>
</tr>
<tr>
<td> signed <span style="font-size:0.7em; line-height:130%">(two's complement)</span>
</td>
<td colspan="2"> <b>-128</b> to <b>127</b>
</td>
</tr>
<tr>
<td> unsigned
</td>
<td colspan="2"> <b>0</b> to <b>255</b>
</td>
</tr>

<tr>
<th rowspan="9"> integral
</th>
<td rowspan="3"> 16
</td>
<td> signed <span style="font-size:0.7em; line-height:130%">(one's complement)</span>
</td>
<td rowspan="2"> <b>± 3.27 · 10<sup>4</sup></b>
</td>
<td> <b>-32767</b> to <b>32767</b>
</td>
</tr>
<tr>
<td> signed <span style="font-size:0.7em; line-height:130%">(two's complement)</span>
</td>
<td> <b>-32768</b> to <b>32767</b>
</td>
</tr>
<tr>
<td> unsigned
</td>
<td> <b>0</b> to <b>6.55 · 10<sup>4</sup></b>
</td>
<td> <b>0</b> to <b>65535</b>
</td>
</tr>
<tr>
<td rowspan="3"> 32
</td>
<td> signed <span style="font-size:0.7em; line-height:130%">(one's complement)</span>
</td>
<td rowspan="2"> <b>± 2.14 · 10<sup>9</sup></b>
</td>
<td> <b>-2,147,483,647</b> to <b>2,147,483,647</b>
</td>
</tr>
<tr>
<td> signed <span style="font-size:0.7em; line-height:130%">(two's complement)</span>
</td>
<td> <b>-2,147,483,648</b> to <b>2,147,483,647</b>
</td>
</tr>
<tr>
<td> unsigned
</td>
<td> <b>0</b> to <b>4.29 · 10<sup>9</sup></b>
</td>
<td> <b>0</b> to <b>4,294,967,295</b>
</td>
</tr>
<tr>
<td rowspan="3"> 64
</td>
<td> signed <span style="font-size:0.7em; line-height:130%">(one's complement)</span>
</td>
<td rowspan="2"> <b>± 9.22 · 10<sup>18</sup></b>
</td>
<td> <b>-9,223,372,036,854,775,807</b> to <b>9,223,372,036,854,775,807</b>
</td>
</tr>
<tr>
<td> signed <span style="font-size:0.7em; line-height:130%">(two's complement)</span>
</td>
<td> <b>-9,223,372,036,854,775,808</b> to <b>9,223,372,036,854,775,807</b>
</td>
</tr>
<tr>
<td> unsigned
</td>
<td> <b>0</b> to <b>1.84 · 10<sup>19</sup></b>
</td>
<td> <b>0</b> to <b>18,446,744,073,709,551,615</b>
</td>
</tr>
<tr>
<th rowspan="2"> floating<br> point
</th>
<td> 32
</td>
<td> <a href="http%3A//en.wikipedia.com/wiki/IEEE-754" class="extiw" title="enwiki:IEEE-754">IEEE-754</a>
</td>
<td> <b>± 3.4 · 10<sup>± 38</sup></b><br> <span style="font-size:0.7em; line-height:130%">(~7 digits)</span>
</td>
<td>
<div>
<ul>
<li>min subnormal: <b>± 1.401,298,4 · 10<sup>-47</sup></b>
</li>
<li>min normal: <b>± 1.175,494,3 · 10<sup>-38</sup></b>
</li>
<li>max: <b>± 3.402,823,4 · 10<sup>38</sup></b>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td> 64
</td>
<td> IEEE-754
</td>
<td> <b>± 1.7 · 10<sup>± 308</sup></b><br> <span style="font-size:0.7em; line-height:130%">(~15 digits)</span>
</td>
<td> <div>
<ul>
<li>min subnormal: <b>± 4.940,656,458,412 · 10<sup>-324</sup></b>
</li>
<li>min normal: <b>± 2.225,073,858,507,201,4 · 10<sup>-308</sup></b>
</li>
<li>max: <b>± 1.797,693,134,862,315,7 · 10<sup>308</sup></b>
</li>
</ul>
</div>
</td>
</tr>
</table>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Keywords">edit</a>]</span> <span class="mw-headline" id="Keywords">Keywords</span>
</h3>
<p><a href="../keyword/bool.html" title="cpp/keyword/bool"><tt>bool</tt></a>, 
<a href="../keyword/true.html" title="cpp/keyword/true"><tt>true</tt></a>, 
<a href="../keyword/false.html" title="cpp/keyword/false"><tt>false</tt></a>, 
<a href="../keyword/char.html" title="cpp/keyword/char"><tt>char</tt></a>, 
<a href="../keyword/wchar_t.html" title="cpp/keyword/wchar t"><tt>wchar_t</tt></a>,
<a href="../keyword/char16_t.html" title="cpp/keyword/char16 t"><tt>char16_t</tt></a>,
<a href="../keyword/char32_t.html" title="cpp/keyword/char32 t"><tt>char32_t</tt></a>,
<a href="../keyword/int.html" title="cpp/keyword/int"><tt>int</tt></a>,
<a href="../keyword/short.html" title="cpp/keyword/short"><tt>short</tt></a>,
<a href="../keyword/long.html" title="cpp/keyword/long"><tt>long</tt></a>,
<a href="../keyword/signed.html" title="cpp/keyword/signed"><tt>signed</tt></a>,
<a href="../keyword/unsigned.html" title="cpp/keyword/unsigned"><tt>unsigned</tt></a>,
<a href="../keyword/float.html" title="cpp/keyword/float"><tt>float</tt></a>,
<a href="../keyword/double.html" title="cpp/keyword/double"><tt>double</tt></a>
</p>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: See also">edit</a>]</span> <span class="mw-headline" id="See_also">See also</span>
</h3>
<ul>
<li> <a href="incomplete_type.html" title="cpp/language/type"> the C++ type system overview</a> 
</li>
<li> <a href="cv.html" title="cpp/language/cv"> const-volatility (cv) specifiers and qualifiers</a>
</li>
<li> <a href="storage_duration.html" title="cpp/language/storage duration"> storage duration specifiers</a>
</li>
</ul>

<!-- 
NewPP limit report
Preprocessor visited node count: 2436/1000000
Preprocessor generated node count: 4074/1000000
Post‐expand include size: 35468/2097152 bytes
Template argument size: 6532/2097152 bytes
Highest expansion depth: 13/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key mwiki1-mwiki_en_:pcache:idhash:716-0!*!0!!en!*!* and timestamp 20140512143508 -->
</div>                    <!-- /bodycontent -->
                                        <!-- printfooter -->
                    <div class="printfooter">
                    Retrieved from "<a href="http%3A//en.cppreference.com/mwiki/index.php">http://en.cppreference.com/mwiki/index.php?title=cpp/language/types&amp;oldid=70229</a>"                    </div>
                    <!-- /printfooter -->
                                                            <!-- catlinks -->
                    <div id="catlinks" class="catlinks catlinks-allhidden"></div>                    <!-- /catlinks -->
                                                            <div class="visualClear"></div>
                    <!-- debughtml -->
                                        <!-- /debughtml -->
                </div>
                <!-- /bodyContent -->
            </div>
        </div>
        <!-- /content -->
        <!-- footer -->
        
        <!-- /footer -->
        <script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../../common/skin_scripts.js"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.ColiruCompiler"], null, true);
}</script>
<script src="../../../common/site_scripts.js"></script>

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 0.089 secs. -->
	</body>
<!-- Cached 20140512143804 -->
</html>
